<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
	
	//Initalisation de l'autoloader
    protected function _initAutoloader() {
        Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
    }
	
    //Initalisation du cache
    protected function _initCache()
    {
      $frontend = array('lifetime' => 7200, 'automatic_seralization' => true);
      $backend = array('cache_dir' => APPLICATION_PATH . '/../data/tmp/');
      $cache = Zend_Cache::factory('Core', 'File', $frontend, $backend);
      Zend_Locale::setCache($cache);
    }
	
    //Initalisation du logger
	protected function _initLogger() {
		$log = $this->bootstrap('Log')->getResource('Log');
		$log->registerErrorHandler();
	}

	//Initalisation de la requete
    protected function _initRequest() {
        $this->bootstrap('FrontController');
        $front = $this->getResource('FrontController');
        $request = new Zend_Controller_Request_Http();
        $front->setRequest($request);
        
        return $request;
	}
		
	//Initalisation de l'encodage
	protected function _initEncoding()
    {
      	$dbAdapter = Zend_Db_Table::getDefaultAdapter();
    }
	
   //Initalisation de la l'aide à la vue
    protected function _initViewHelpers() {
        $this->bootstrap('View');
        $view = $this->getResource('View');
		//$view->setHelperPath(APPLICATION_PATH.'/view/helpers', 'ConverterDate.php');
        
        //On register le plugin qui va chercher le JS en fonction du controlleur courant 
		$controller = Zend_Controller_Front::getInstance();
		$controller->registerPlugin(new Plugin_MyPluginController());
        
        // Initialiser la balise TITLE
        $view->headTitle('Ahimsa')->setSeparator(' - ');

    }
    
    //Initalisation du router pour le sitemap
    protected function _initRouter()
    {
    	$router = $this->getResource('FrontController')->getRouter();
    	$router->addRoute(
    			'manageSitemap',
    			new Zend_Controller_Router_Route('sitemap.xml', array('controller'=>'sitemap','action'=>'index'))
    	);
    	 
    }
	//Initalisation de la session
	protected function _initSession()
	{
		// On initialise la session
		$session = new Zend_Session_Namespace('ahimsa', true);
		Zend_Registry::set('session', $session);
		return $session;
	}
	
	//Initalisation de l'internalisation
	protected function _initTranslate()
	{
		// On récupère la session du site.
		$session = Zend_Registry::get('session');
		// On définit la langue par défaut sur le site.
	
		$locale = new Zend_Locale('fr');
		// On enregistre cette langue dans notre registre.
		Zend_Registry::set('Zend_Locale', $locale);
		// Si la langue existe en session, on récupère la session, sinon on prend la valeur par défaut.
		$langLocale = isset($session->lang) ? $session->lang : $locale;
		// On lance l'objet de traduction en lui passant les fichiers de langues
		$translate = new Zend_Translate('array',APPLICATION_PATH.'/languages/fr_FR.php','fr');
		$translate->addTranslation(APPLICATION_PATH.'/languages/en_US.php','en');
		// On lui passe la langue courante du site
		$translate->setLocale($langLocale);
		// Important pour utiliser le helper.
		Zend_Registry::set('Zend_Translate', $translate);
	
	}
	
}